﻿namespace Renci.Data.Interop.OpenGIS.Gml_32
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(TypeName = "FaceType", Namespace = "http://www.opengis.net/gml/3.2")]
    [System.Xml.Serialization.XmlRootAttribute("Face", Namespace = "http://www.opengis.net/gml/3.2", IsNullable = false)]
    public class FaceType : AbstractTopoPrimitiveType, IAggregationAttributeGroup
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="FaceType"/> class.
        /// </summary>
        public FaceType()
        {
            this.Universal = false;
        }

        private System.Collections.ObjectModel.Collection<NodePropertyType> _isolated = new System.Collections.ObjectModel.Collection<NodePropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("isolated")]
        public System.Collections.ObjectModel.Collection<NodePropertyType> Isolated { get { return this._isolated; } }

        private System.Collections.ObjectModel.Collection<DirectedEdgePropertyType> _directedEdge = new System.Collections.ObjectModel.Collection<DirectedEdgePropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("directedEdge")]
        public System.Collections.ObjectModel.Collection<DirectedEdgePropertyType> DirectedEdge { get { return this._directedEdge; } }

        private System.Collections.ObjectModel.Collection<DirectedTopoSolidPropertyType> _directedTopoSolid = new System.Collections.ObjectModel.Collection<DirectedTopoSolidPropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("directedTopoSolid")]
        public System.Collections.ObjectModel.Collection<DirectedTopoSolidPropertyType> DirectedTopoSolid { get { return this._directedTopoSolid; } }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("surfaceProperty")]
        public SurfacePropertyType SurfaceProperty { get; set; }

        #region IAggregationAttributeGroup Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("aggregationType", Namespace = "http://www.opengis.net/gml/3.2")]
        public AggregationType AggregationType { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool AggregationTypeSpecified { get; set; }

        #endregion

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("universal")]
        [System.ComponentModel.DefaultValueAttribute(false)]
        public bool Universal { get; set; }
    }
}
